package com.gec.controller;

import com.gec.bean.Bankcard;
import com.gec.bean.UserFundProduct;
import com.gec.bean.UserFundProductExample;
import com.gec.service.UserFundProductService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.shiro.session.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

//使用注解标识为控制层的代码
@Controller
public class UserFundProductController {

    //获取业务层的操作对象
    @Autowired
    UserFundProductService userFundProductService;

    //  1.定义插入操作的请求方法(管理员)
    @RequestMapping("/insertUserFundProduct")
    public String insertUserFundProduct(@RequestParam(required = false,defaultValue ="1")Integer pageNo, UserFundProduct userFundProduct, HttpServletRequest request) {
        //调用业务层进行添加
        boolean isok = userFundProductService.insertUserFundProduct(userFundProduct);
        //作出响应
        if (isok) {
            PageHelper.startPage(pageNo,10);
            List<UserFundProduct>list=userFundProductService.queryUserFundProduct();
            //生成page分页模型的信息
            PageInfo pageInfo=new PageInfo(list);
            //把信息保存在请求作用域中，目的给jsp页面获取并显示
            request.setAttribute("list",list);
            request.setAttribute("pageInfo",pageInfo);
            return "userFundProductList";
        } else {
            //把信息保存在请求作用域中，目的给jsp页面获取并显示
            request.setAttribute("userFundProduct",userFundProduct);
            request.setAttribute("message","插入失败，请重新操作！");
            return "insertUserFundProduct";
        }
    }
    //  2.定义插入操作的请求方法(用户)
    @RequestMapping("/insertUserFundProductUser")
    public String insertUserFundProductUser(UserFundProduct UserFundProduct, HttpServletRequest request) {
        UserFundProduct.setStatus(1);
        //调用业务层进行添加
        boolean isok = userFundProductService.insertUserFundProduct(UserFundProduct);
        if (isok) {
            return "redirect:/queryUserFundProduct";
        } else {
            //把信息保存在请求作用域中，目的给jsp页面获取并显示
            request.setAttribute("message", "添加失败，请重新操作！");
            return "error";
        }
    }
    //定义查询操作的请求方法
    @RequestMapping("/queryUserFundProduct")
    public String queryUserFundProduct(@RequestParam(required = false,defaultValue ="1")Integer pageNo, HttpServletRequest request) {
        //调用业务层进行添加
        //开启分页操作  （当前页码，每页显示记录条数）
        PageHelper.startPage(pageNo,10);
        List<UserFundProduct>list=userFundProductService.queryUserFundProduct();
        //生成page分页模型的信息
        PageInfo pageInfo=new PageInfo(list);
        //把信息保存在请求作用域中，目的给jsp页面获取并显示
        request.setAttribute("list",list);
        request.setAttribute("pageInfo",pageInfo);
        return "userFundProductList";
    }

    //定义查询操作的请求方法
    @RequestMapping("/userQueryUserFundProduct")/*查询个人的基金投资信息*/
    public String userQueryUserFundProduct(@RequestParam(required = false,defaultValue ="1")Integer pageNo, HttpServletRequest request) {
        //调用业务层进行添加
        //开启分页操作  （当前页码，每页显示记录条数）
        PageHelper.startPage(pageNo,10);

//        //example查询
//        UserFundProductExample example=new UserFundProductExample();//创建example对象
//        example.createCriteria().andUseridEqualTo(sess)


        List<UserFundProduct>list=userFundProductService.queryUserFundProduct();
        //生成page分页模型的信息
        PageInfo pageInfo=new PageInfo(list);
        //把信息保存在请求作用域中，目的给jsp页面获取并显示
        request.setAttribute("list",list);
        request.setAttribute("pageInfo",pageInfo);
        return "userFundProductList";
    }

////定义查询操作的请求方法//和其他表关联合并
//@RequestMapping("/userQueryUserFundProduct")
//public String userQueryUserFundProduct(HttpServletRequest request) {
//    //调用业务层进行添加
//    List<UserFundProduct>list=userFundProductService.queryUserFundProduct();
//    //把信息保存在请求作用域中，目的给jsp页面获取并显示
//    request.setAttribute("list",list);
//    return "userFundProductList";//这里千万不要用重定向！！！
//}
//

    //定义查询id操作的请求方法
    @RequestMapping("/toUpdateUserFundProduct")
    public String toUpdateUserFundProduct(Integer id,HttpServletRequest request) {
        //调用业务层进行查询，并且得到结果
        UserFundProduct updateUserFundProduct = userFundProductService.queryId(id);
        //把信息保存在请求作用域中，目的给jsp页面获取并显示
        request.setAttribute("updateUserFundProduct", updateUserFundProduct);
        //跳转到jsp页面获取并显示
        return "UserFundProductUpdate";
    }
    //定义修改操作的请求方法
    @RequestMapping("/updateUserFundProduct")
    public String updateUserFundProduct(UserFundProduct userFundProduct, HttpServletRequest request) {
        //调用业务层进行添加
        boolean isok = userFundProductService.updateUserFundProduct(userFundProduct);
        //作出响应
        if (isok) {
            //修改成功则重新查询数据
            return "redirect:/queryUserFundProduct";
        } else {
            //把信息保存在请求作用域中，目的给jsp页面获取并显示
            request.setAttribute("updateUserFundProduct", userFundProduct);
            request.setAttribute("message", "修改失败，请重新操作！");
            return "UserFundProductUpdate";
        }
    }
    //定义删除操作的请求方法
    @RequestMapping("/deleteUserFundProduct")
    public String deleteUserFundProduct(int id) {
        //调用业务层进行添加
        userFundProductService.deleteUserFundProduct(id);
        //删除成功
        return "redirect:/queryUserFundProduct";
    }



}
